/**
 * @file drv_adc.h
 * @brief HAL CUBEMX DRIVER
 * 
 * @author dalin (dalin@open-robot.com)
 * @version 1.0
 * @date 2023-05-10
 * 
 * @copyright Copyright (c) 2023  Open Robot Tech.co, Ltd
 * 
 * @par 修改日志:
 * <table>
 * <tr><th>Date       <th>Version <th>Author  <th>Description
 * <tr><td>2023-05-10 <td>1.0     <td>dalin     <td>内容
 * </table>
 */

#ifndef DRV_ADC_H_
#define DRV_ADC_H_

#include "drv_config.h"

#ifdef  USE_ADC_DRIVER

typedef enum 
{
    DRV_ADC_INIT = 0,
    DRV_ADC_1,
    DRV_ADC_2,
    DRV_ADC_3,

    DRV_ADC_MAX

}adcNumber_e;


/**
 * @brief 开启adc设备
 * 
 * @param  adcx             : xxx
 * 
 * @return int 
 */
int drv_adc_start(adcNumber_e adcx);

/**
 * @brief 从常规信道的数据寄存器获取转换值
 * 
 * @param  adcx             : xxx
 * 
 * @return uint16_t  返回最近一次ADC1规则组的转换结果
 */
uint16_t drv_adc_get_value(adcNumber_e adcx);

/**
 * @brief DMA请求
 * 
 * @param  adcx             : adcx
 * @param  pdata            : 数据存储
 * @param  size             : 从ADC外设传输到存储器的数据长度
 * 
 */
int drv_adc_start_dma(adcNumber_e adcx, uint32_t* pdata, uint16_t size);


#endif /* USE_ADC_DRIVER */
#endif /* DRV_ADC_H_ */
